package com.deyuanyun.pic.pig.app.service;

import com.deyuanyun.pic.common.dto.Result;
import com.deyuanyun.pic.pig.app.domain.PigResults;
import com.deyuanyun.pic.pig.app.domain.PigTaskPoint;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public interface PigService {
	/**
	 * 登录接口(获取userName)
	 */
	Map<String,Object> getUserName(String Account);


	/**
	 * 登录接口（获取用户相关信息）
	 * @param Param
	 * @return
     */
	Map<String,Object> login(String Param);

	/**
	 * 判断是否为有效用户
	 * @param UserID
	 * @return
	 */
	HashMap<String,Object> findUserId(String UserID);

	/**
	 * 异步写入日志
	 * @param Id
	 * @param userId
	 * @param state
	 * @param accessType
	 */
	void insertLog(String Id,String userId,Integer state,Integer accessType);

	/**
	 * @Description ：选择检测任务接口
	 */
	HashMap<String, Object> findTask() throws Exception;

	/**
	 * 获取任务信息
	 * @param taskId
	 * @return
	 * @throws Exception
	 */
	HashMap<String, Object>  getTaskInfo(String taskId) throws Exception;

	/**
	 * 搜索检测任务接口
	 * @param pipeName
	 * @return
	 * @throws Exception
	 */
	Result findTaskByName(String pipeName)  throws Exception;

	/**
	 * 查询发球点相关数据（对用于判断用户是否是先提交收球点在提交发球点有帮助，比如查询发球时间是否为空）
	 * @param taskId
	 * @return
	 * @throws Exception
	 */

//	HashMap<String,Object> findSend(String taskId) throws Exception;

	/**
	 * @Description:选择跟踪点任务接口
	 */
	HashMap<String, Object>  findMarker(String taskId) throws Exception;


	Result getTaskTypes() throws Exception;

	/**
	 * 获取配置信息
	 * @return
	 * @throws Exception
	 */
	HashMap<String, Object> getConfigs() throws Exception;

	/**
	 * 提交发球点信息
	 */
	void insertSendInfo(PigResults result) throws Exception;

	/**
	 * 提交收球点信息
	 */
	void updateBackInfo(PigResults result) throws Exception;

	/**
	 * 发球、收球、通过 passBall
	 */
	void passBall(String taskId,String ID,Date passTime,BigDecimal mile,int type) throws Exception;

	/**
	 * 提交标记点信息
	 */
	void updateMarker(PigTaskPoint point) throws Exception;

	/**
	 * 人到达跟踪点
	 */
	void arriveMark(PigTaskPoint point) throws Exception;
}
